package com.lxl.testHd.mypartition;

import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Partitioner;

import java.util.HashMap;

/**
 * @author ：e_lixilin
 * @date ：2022/2/25 14:01
 * @description：
 * @modified By：
 */
public class SelfPartitioner extends Partitioner<Text,AvgCarInfo> {
    public static HashMap<String, Integer> typeToPartition = new HashMap<>();
    static{
        //规定不同车型存放的区
        typeToPartition.put("小型", 0);
        typeToPartition.put("中型", 1);
        typeToPartition.put("大型", 2);
        typeToPartition.put("特大型", 3);
    }
    /**
     * 自定义分区
     * @param key
     * @param avgCarInfo
     * @param numPartitions the total number of partitions.
     * @return
     */
    @Override
    public int getPartition(Text key, AvgCarInfo avgCarInfo, int numPartitions) {
        String carType = key.toString();
        return typeToPartition.get(carType);
    }
}
